﻿using Autofac;

namespace Api
{
    public class IocConfiguration : Module
    {
        protected override void Load(ContainerBuilder builder)
        {
            builder.RegisterType<HttpContextAccessor>().As<IHttpContextAccessor>().SingleInstance();
            builder.RegisterType<CurrentUser>().As<ICurrentUser>().SingleInstance();
            builder.RegisterType<RedisHelper>().As<IRedisHelper>().SingleInstance();

            builder.RegisterGeneric(typeof(BaseQuery<>)).As(typeof(IQuery<>)).InstancePerLifetimeScope();
            //builder.RegisterGeneric(typeof(BaseRepository<>)).As(typeof(IRepository<>)).InstancePerLifetimeScope();
            //builder.RegisterGeneric(typeof(BaseLogic<,,,,,>)).As(typeof(ILogic<,>)).InstancePerLifetimeScope();
            //builder.RegisterGeneric(typeof(BaseMapping<,,>)).As(typeof(IMapping<,,>)).InstancePerLifetimeScope();

            builder.RegisterType<CreateCode>().As<ICreateCode>().InstancePerLifetimeScope();
            builder.RegisterType<JudgeWireropeStatusMonitor>().As<IJudgeWireropeStatusMonitor>().InstancePerLifetimeScope();
            builder.RegisterType<LoginUserDataPermission>().As<ILoginUserDataPermission>().InstancePerLifetimeScope();
            builder.RegisterType<DataVLogic>().As<IDataVLogic>().InstancePerLifetimeScope();

            #region  DB-IOC

            #region 提升机
            builder.RegisterType<HoisterRepository>().As<IHoisterRepository>().InstancePerLifetimeScope();
            builder.RegisterType<HoisterMapping>().As<IHoisterMapping>().InstancePerLifetimeScope();
            builder.RegisterType<HoisterService>().As<IHoisterService>().InstancePerLifetimeScope();
            builder.RegisterType<HoisterLogic>().As<IHoisterLogic>().InstancePerLifetimeScope();
            #endregion


            #region 安装地点
            builder.RegisterType<InstallAddressRepository>().As<IInstallAddressRepository>().InstancePerLifetimeScope();
            builder.RegisterType<InstallAddressMapping>().As<IInstallAddressMapping>().InstancePerLifetimeScope();
            builder.RegisterType<InstallAddressService>().As<IInstallAddressService>().InstancePerLifetimeScope();
            builder.RegisterType<InstallAddressLogic>().As<IInstallAddressLogic>().InstancePerLifetimeScope();
            #endregion


            #region 制造商
            builder.RegisterType<ProducerRepository>().As<IProducerRepository>().InstancePerLifetimeScope();
            builder.RegisterType<ProducerMapping>().As<IProducerMapping>().InstancePerLifetimeScope();
            builder.RegisterType<ProducerService>().As<IProducerService>().InstancePerLifetimeScope();
            builder.RegisterType<ProducerLogic>().As<IProducerLogic>().InstancePerLifetimeScope();
            #endregion


            #region 状态标准
            builder.RegisterType<StandStatusRepository>().As<IStandStatusRepository>().InstancePerLifetimeScope();
            builder.RegisterType<StandStatusMapping>().As<IStandStatusMapping>().InstancePerLifetimeScope();
            builder.RegisterType<StandStatusService>().As<IStandStatusService>().InstancePerLifetimeScope();
            builder.RegisterType<StandStatusLogic>().As<IStandStatusLogic>().InstancePerLifetimeScope();
            #endregion


            #region 状态标准明细
            builder.RegisterType<StandStatusDetailRepository>().As<IStandStatusDetailRepository>().InstancePerLifetimeScope();
            builder.RegisterType<StandStatusDetailMapping>().As<IStandStatusDetailMapping>().InstancePerLifetimeScope();
            builder.RegisterType<StandStatusDetailService>().As<IStandStatusDetailService>().InstancePerLifetimeScope();
            builder.RegisterType<StandStatusDetailLogic>().As<IStandStatusDetailLogic>().InstancePerLifetimeScope();
            #endregion


            #region 供应商
            builder.RegisterType<SupplierRepository>().As<ISupplierRepository>().InstancePerLifetimeScope();
            builder.RegisterType<SupplierMapping>().As<ISupplierMapping>().InstancePerLifetimeScope();
            builder.RegisterType<SupplierService>().As<ISupplierService>().InstancePerLifetimeScope();
            builder.RegisterType<SupplierLogic>().As<ISupplierLogic>().InstancePerLifetimeScope();
            #endregion


            #region 仓库
            builder.RegisterType<WarehouseRepository>().As<IWarehouseRepository>().InstancePerLifetimeScope();
            builder.RegisterType<WarehouseMapping>().As<IWarehouseMapping>().InstancePerLifetimeScope();
            builder.RegisterType<WarehouseService>().As<IWarehouseService>().InstancePerLifetimeScope();
            builder.RegisterType<WarehouseLogic>().As<IWarehouseLogic>().InstancePerLifetimeScope();
            #endregion


            #region 仓库库位
            builder.RegisterType<WarehousePositionRepository>().As<IWarehousePositionRepository>().InstancePerLifetimeScope();
            builder.RegisterType<WarehousePositionMapping>().As<IWarehousePositionMapping>().InstancePerLifetimeScope();
            builder.RegisterType<WarehousePositionService>().As<IWarehousePositionService>().InstancePerLifetimeScope();
            builder.RegisterType<WarehousePositionLogic>().As<IWarehousePositionLogic>().InstancePerLifetimeScope();
            #endregion


            #region 仓库管理员
            builder.RegisterType<WarehouseUserRepository>().As<IWarehouseUserRepository>().InstancePerLifetimeScope();
            builder.RegisterType<WarehouseUserMapping>().As<IWarehouseUserMapping>().InstancePerLifetimeScope();
            builder.RegisterType<WarehouseUserService>().As<IWarehouseUserService>().InstancePerLifetimeScope();
            builder.RegisterType<WarehouseUserLogic>().As<IWarehouseUserLogic>().InstancePerLifetimeScope();
            #endregion


            #region 钢丝绳
            builder.RegisterType<WireropeRepository>().As<IWireropeRepository>().InstancePerLifetimeScope();
            builder.RegisterType<WireropeMapping>().As<IWireropeMapping>().InstancePerLifetimeScope();
            builder.RegisterType<WireropeService>().As<IWireropeService>().InstancePerLifetimeScope();
            builder.RegisterType<WireropeLogic>().As<IWireropeLogic>().InstancePerLifetimeScope();
            #endregion


            #region 部门
            builder.RegisterType<DepartmentRepository>().As<IDepartmentRepository>().InstancePerLifetimeScope();
            builder.RegisterType<DepartmentMapping>().As<IDepartmentMapping>().InstancePerLifetimeScope();
            builder.RegisterType<DepartmentService>().As<IDepartmentService>().InstancePerLifetimeScope();
            builder.RegisterType<DepartmentLogic>().As<IDepartmentLogic>().InstancePerLifetimeScope();
            #endregion


            #region 部门用户
            builder.RegisterType<DepartmentUserRepository>().As<IDepartmentUserRepository>().InstancePerLifetimeScope();
            builder.RegisterType<DepartmentUserMapping>().As<IDepartmentUserMapping>().InstancePerLifetimeScope();
            builder.RegisterType<DepartmentUserService>().As<IDepartmentUserService>().InstancePerLifetimeScope();
            builder.RegisterType<DepartmentUserLogic>().As<IDepartmentUserLogic>().InstancePerLifetimeScope();
            #endregion


            #region 权限
            builder.RegisterType<PermissionRepository>().As<IPermissionRepository>().InstancePerLifetimeScope();
            builder.RegisterType<PermissionMapping>().As<IPermissionMapping>().InstancePerLifetimeScope();
            builder.RegisterType<PermissionService>().As<IPermissionService>().InstancePerLifetimeScope();
            builder.RegisterType<PermissionLogic>().As<IPermissionLogic>().InstancePerLifetimeScope();
            #endregion


            #region Token刷新记录
            builder.RegisterType<RefreshTokenRepository>().As<IRefreshTokenRepository>().InstancePerLifetimeScope();
            builder.RegisterType<RefreshTokenMapping>().As<IRefreshTokenMapping>().InstancePerLifetimeScope();
            builder.RegisterType<RefreshTokenService>().As<IRefreshTokenService>().InstancePerLifetimeScope();
            builder.RegisterType<RefreshTokenLogic>().As<IRefreshTokenLogic>().InstancePerLifetimeScope();
            #endregion


            #region 用户角色
            builder.RegisterType<RoleRepository>().As<IRoleRepository>().InstancePerLifetimeScope();
            builder.RegisterType<RoleMapping>().As<IRoleMapping>().InstancePerLifetimeScope();
            builder.RegisterType<RoleService>().As<IRoleService>().InstancePerLifetimeScope();
            builder.RegisterType<RoleLogic>().As<IRoleLogic>().InstancePerLifetimeScope();
            #endregion


            #region 角色与部门
            builder.RegisterType<RoleDepartmentRepository>().As<IRoleDepartmentRepository>().InstancePerLifetimeScope();
            builder.RegisterType<RoleDepartmentMapping>().As<IRoleDepartmentMapping>().InstancePerLifetimeScope();
            builder.RegisterType<RoleDepartmentService>().As<IRoleDepartmentService>().InstancePerLifetimeScope();
            builder.RegisterType<RoleDepartmentLogic>().As<IRoleDepartmentLogic>().InstancePerLifetimeScope();
            #endregion


            #region 角色与权限
            builder.RegisterType<RolePermissionRepository>().As<IRolePermissionRepository>().InstancePerLifetimeScope();
            builder.RegisterType<RolePermissionMapping>().As<IRolePermissionMapping>().InstancePerLifetimeScope();
            builder.RegisterType<RolePermissionService>().As<IRolePermissionService>().InstancePerLifetimeScope();
            builder.RegisterType<RolePermissionLogic>().As<IRolePermissionLogic>().InstancePerLifetimeScope();
            #endregion


            #region 用户
            builder.RegisterType<UserRepository>().As<IUserRepository>().InstancePerLifetimeScope();
            builder.RegisterType<UserMapping>().As<IUserMapping>().InstancePerLifetimeScope();
            builder.RegisterType<UserService>().As<IUserService>().InstancePerLifetimeScope();
            builder.RegisterType<UserLogic>().As<IUserLogic>().InstancePerLifetimeScope();
            #endregion


            #region 用户与角色
            builder.RegisterType<UserRoleRepository>().As<IUserRoleRepository>().InstancePerLifetimeScope();
            builder.RegisterType<UserRoleMapping>().As<IUserRoleMapping>().InstancePerLifetimeScope();
            builder.RegisterType<UserRoleService>().As<IUserRoleService>().InstancePerLifetimeScope();
            builder.RegisterType<UserRoleLogic>().As<IUserRoleLogic>().InstancePerLifetimeScope();
            #endregion


            #region 提升用途
            builder.RegisterType<HoisterUsageRepository>().As<IHoisterUsageRepository>().InstancePerLifetimeScope();
            builder.RegisterType<HoisterUsageMapping>().As<IHoisterUsageMapping>().InstancePerLifetimeScope();
            builder.RegisterType<HoisterUsageService>().As<IHoisterUsageService>().InstancePerLifetimeScope();
            builder.RegisterType<HoisterUsageLogic>().As<IHoisterUsageLogic>().InstancePerLifetimeScope();
            #endregion


            #region 抗拉强度等级
            builder.RegisterType<MpaRepository>().As<IMpaRepository>().InstancePerLifetimeScope();
            builder.RegisterType<MpaMapping>().As<IMpaMapping>().InstancePerLifetimeScope();
            builder.RegisterType<MpaService>().As<IMpaService>().InstancePerLifetimeScope();
            builder.RegisterType<MpaLogic>().As<IMpaLogic>().InstancePerLifetimeScope();
            #endregion


            #region 出入库业务类型
            builder.RegisterType<OperTypeRepository>().As<IOperTypeRepository>().InstancePerLifetimeScope();
            builder.RegisterType<OperTypeMapping>().As<IOperTypeMapping>().InstancePerLifetimeScope();
            builder.RegisterType<OperTypeService>().As<IOperTypeService>().InstancePerLifetimeScope();
            builder.RegisterType<OperTypeLogic>().As<IOperTypeLogic>().InstancePerLifetimeScope();
            #endregion


            #region 表面状态
            builder.RegisterType<SurfaceStatusRepository>().As<ISurfaceStatusRepository>().InstancePerLifetimeScope();
            builder.RegisterType<SurfaceStatusMapping>().As<ISurfaceStatusMapping>().InstancePerLifetimeScope();
            builder.RegisterType<SurfaceStatusService>().As<ISurfaceStatusService>().InstancePerLifetimeScope();
            builder.RegisterType<SurfaceStatusLogic>().As<ISurfaceStatusLogic>().InstancePerLifetimeScope();
            #endregion


            #region 捻制类型
            builder.RegisterType<TwistingTypeRepository>().As<ITwistingTypeRepository>().InstancePerLifetimeScope();
            builder.RegisterType<TwistingTypeMapping>().As<ITwistingTypeMapping>().InstancePerLifetimeScope();
            builder.RegisterType<TwistingTypeService>().As<ITwistingTypeService>().InstancePerLifetimeScope();
            builder.RegisterType<TwistingTypeLogic>().As<ITwistingTypeLogic>().InstancePerLifetimeScope();
            #endregion


            #region 在用绳维保类型
            builder.RegisterType<WireropeKeepTypeRepository>().As<IWireropeKeepTypeRepository>().InstancePerLifetimeScope();
            builder.RegisterType<WireropeKeepTypeMapping>().As<IWireropeKeepTypeMapping>().InstancePerLifetimeScope();
            builder.RegisterType<WireropeKeepTypeService>().As<IWireropeKeepTypeService>().InstancePerLifetimeScope();
            builder.RegisterType<WireropeKeepTypeLogic>().As<IWireropeKeepTypeLogic>().InstancePerLifetimeScope();
            #endregion


            #region 绳芯结构
            builder.RegisterType<WireropeStructRepository>().As<IWireropeStructRepository>().InstancePerLifetimeScope();
            builder.RegisterType<WireropeStructMapping>().As<IWireropeStructMapping>().InstancePerLifetimeScope();
            builder.RegisterType<WireropeStructService>().As<IWireropeStructService>().InstancePerLifetimeScope();
            builder.RegisterType<WireropeStructLogic>().As<IWireropeStructLogic>().InstancePerLifetimeScope();
            #endregion


            #region 钢丝绳类型
            builder.RegisterType<WireropeTypeRepository>().As<IWireropeTypeRepository>().InstancePerLifetimeScope();
            builder.RegisterType<WireropeTypeMapping>().As<IWireropeTypeMapping>().InstancePerLifetimeScope();
            builder.RegisterType<WireropeTypeService>().As<IWireropeTypeService>().InstancePerLifetimeScope();
            builder.RegisterType<WireropeTypeLogic>().As<IWireropeTypeLogic>().InstancePerLifetimeScope();
            #endregion


            #region 区/县
            builder.RegisterType<AreaRepository>().As<IAreaRepository>().InstancePerLifetimeScope();
            builder.RegisterType<AreaMapping>().As<IAreaMapping>().InstancePerLifetimeScope();
            builder.RegisterType<AreaService>().As<IAreaService>().InstancePerLifetimeScope();
            builder.RegisterType<AreaLogic>().As<IAreaLogic>().InstancePerLifetimeScope();
            #endregion


            #region 市
            builder.RegisterType<CityRepository>().As<ICityRepository>().InstancePerLifetimeScope();
            builder.RegisterType<CityMapping>().As<ICityMapping>().InstancePerLifetimeScope();
            builder.RegisterType<CityService>().As<ICityService>().InstancePerLifetimeScope();
            builder.RegisterType<CityLogic>().As<ICityLogic>().InstancePerLifetimeScope();
            #endregion


            #region 数据部门
            builder.RegisterType<DataDepartmentRepository>().As<IDataDepartmentRepository>().InstancePerLifetimeScope();
            builder.RegisterType<DataDepartmentMapping>().As<IDataDepartmentMapping>().InstancePerLifetimeScope();
            builder.RegisterType<DataDepartmentService>().As<IDataDepartmentService>().InstancePerLifetimeScope();
            builder.RegisterType<DataDepartmentLogic>().As<IDataDepartmentLogic>().InstancePerLifetimeScope();
            #endregion


            #region 集团
            builder.RegisterType<GroupInfoRepository>().As<IGroupInfoRepository>().InstancePerLifetimeScope();
            builder.RegisterType<GroupInfoMapping>().As<IGroupInfoMapping>().InstancePerLifetimeScope();
            builder.RegisterType<GroupInfoService>().As<IGroupInfoService>().InstancePerLifetimeScope();
            builder.RegisterType<GroupInfoLogic>().As<IGroupInfoLogic>().InstancePerLifetimeScope();
            #endregion


            #region 省
            builder.RegisterType<ProvinceRepository>().As<IProvinceRepository>().InstancePerLifetimeScope();
            builder.RegisterType<ProvinceMapping>().As<IProvinceMapping>().InstancePerLifetimeScope();
            builder.RegisterType<ProvinceService>().As<IProvinceService>().InstancePerLifetimeScope();
            builder.RegisterType<ProvinceLogic>().As<IProvinceLogic>().InstancePerLifetimeScope();
            #endregion


            #region 监管部门
            builder.RegisterType<RegulatorRepository>().As<IRegulatorRepository>().InstancePerLifetimeScope();
            builder.RegisterType<RegulatorMapping>().As<IRegulatorMapping>().InstancePerLifetimeScope();
            builder.RegisterType<RegulatorService>().As<IRegulatorService>().InstancePerLifetimeScope();
            builder.RegisterType<RegulatorLogic>().As<IRegulatorLogic>().InstancePerLifetimeScope();
            #endregion


            #region 数据权限
            builder.RegisterType<RegulatorDataRepository>().As<IRegulatorDataRepository>().InstancePerLifetimeScope();
            builder.RegisterType<RegulatorDataMapping>().As<IRegulatorDataMapping>().InstancePerLifetimeScope();
            builder.RegisterType<RegulatorDataService>().As<IRegulatorDataService>().InstancePerLifetimeScope();
            builder.RegisterType<RegulatorDataLogic>().As<IRegulatorDataLogic>().InstancePerLifetimeScope();
            #endregion


            #region 功能权限
            builder.RegisterType<RegulatorPermissionRepository>().As<IRegulatorPermissionRepository>().InstancePerLifetimeScope();
            builder.RegisterType<RegulatorPermissionMapping>().As<IRegulatorPermissionMapping>().InstancePerLifetimeScope();
            builder.RegisterType<RegulatorPermissionService>().As<IRegulatorPermissionService>().InstancePerLifetimeScope();
            builder.RegisterType<RegulatorPermissionLogic>().As<IRegulatorPermissionLogic>().InstancePerLifetimeScope();
            #endregion


            #region 监管部门用户
            builder.RegisterType<RegulatorUserRepository>().As<IRegulatorUserRepository>().InstancePerLifetimeScope();
            builder.RegisterType<RegulatorUserMapping>().As<IRegulatorUserMapping>().InstancePerLifetimeScope();
            builder.RegisterType<RegulatorUserService>().As<IRegulatorUserService>().InstancePerLifetimeScope();
            builder.RegisterType<RegulatorUserLogic>().As<IRegulatorUserLogic>().InstancePerLifetimeScope();
            #endregion


            #region 超级用户
            builder.RegisterType<SuperUserRepository>().As<ISuperUserRepository>().InstancePerLifetimeScope();
            builder.RegisterType<SuperUserMapping>().As<ISuperUserMapping>().InstancePerLifetimeScope();
            builder.RegisterType<SuperUserService>().As<ISuperUserService>().InstancePerLifetimeScope();
            builder.RegisterType<SuperUserLogic>().As<ISuperUserLogic>().InstancePerLifetimeScope();
            #endregion


            #region 消息
            builder.RegisterType<MessageRepository>().As<IMessageRepository>().InstancePerLifetimeScope();
            builder.RegisterType<MessageMapping>().As<IMessageMapping>().InstancePerLifetimeScope();
            builder.RegisterType<MessageService>().As<IMessageService>().InstancePerLifetimeScope();
            builder.RegisterType<MessageLogic>().As<IMessageLogic>().InstancePerLifetimeScope();
            #endregion


            #region 单据
            builder.RegisterType<BillRepository>().As<IBillRepository>().InstancePerLifetimeScope();
            builder.RegisterType<BillMapping>().As<IBillMapping>().InstancePerLifetimeScope();
            builder.RegisterType<BillService>().As<IBillService>().InstancePerLifetimeScope();
            builder.RegisterType<BillLogic>().As<IBillLogic>().InstancePerLifetimeScope();
            #endregion


            #region 单据明细
            builder.RegisterType<BillDetailRepository>().As<IBillDetailRepository>().InstancePerLifetimeScope();
            builder.RegisterType<BillDetailMapping>().As<IBillDetailMapping>().InstancePerLifetimeScope();
            builder.RegisterType<BillDetailService>().As<IBillDetailService>().InstancePerLifetimeScope();
            builder.RegisterType<BillDetailLogic>().As<IBillDetailLogic>().InstancePerLifetimeScope();
            #endregion


            #region 库存信息
            builder.RegisterType<StockRepository>().As<IStockRepository>().InstancePerLifetimeScope();
            builder.RegisterType<StockMapping>().As<IStockMapping>().InstancePerLifetimeScope();
            builder.RegisterType<StockService>().As<IStockService>().InstancePerLifetimeScope();
            builder.RegisterType<StockLogic>().As<IStockLogic>().InstancePerLifetimeScope();
            #endregion


            #region 备绳维保
            builder.RegisterType<StockWireropeKeepRepository>().As<IStockWireropeKeepRepository>().InstancePerLifetimeScope();
            builder.RegisterType<StockWireropeKeepMapping>().As<IStockWireropeKeepMapping>().InstancePerLifetimeScope();
            builder.RegisterType<StockWireropeKeepService>().As<IStockWireropeKeepService>().InstancePerLifetimeScope();
            builder.RegisterType<StockWireropeKeepLogic>().As<IStockWireropeKeepLogic>().InstancePerLifetimeScope();
            #endregion


            #region 换绳
            builder.RegisterType<ChangeWireropeRepository>().As<IChangeWireropeRepository>().InstancePerLifetimeScope();
            builder.RegisterType<ChangeWireropeMapping>().As<IChangeWireropeMapping>().InstancePerLifetimeScope();
            builder.RegisterType<ChangeWireropeService>().As<IChangeWireropeService>().InstancePerLifetimeScope();
            builder.RegisterType<ChangeWireropeLogic>().As<IChangeWireropeLogic>().InstancePerLifetimeScope();
            #endregion


            #region 在用绳检测
            builder.RegisterType<CheckWireropeRepository>().As<ICheckWireropeRepository>().InstancePerLifetimeScope();
            builder.RegisterType<CheckWireropeMapping>().As<ICheckWireropeMapping>().InstancePerLifetimeScope();
            builder.RegisterType<CheckWireropeService>().As<ICheckWireropeService>().InstancePerLifetimeScope();
            builder.RegisterType<CheckWireropeLogic>().As<ICheckWireropeLogic>().InstancePerLifetimeScope();
            #endregion


            #region 在用绳检测详情
            builder.RegisterType<CheckWireropeDetailRepository>().As<ICheckWireropeDetailRepository>().InstancePerLifetimeScope();
            builder.RegisterType<CheckWireropeDetailMapping>().As<ICheckWireropeDetailMapping>().InstancePerLifetimeScope();
            builder.RegisterType<CheckWireropeDetailService>().As<ICheckWireropeDetailService>().InstancePerLifetimeScope();
            builder.RegisterType<CheckWireropeDetailLogic>().As<ICheckWireropeDetailLogic>().InstancePerLifetimeScope();
            #endregion


            #region 在用绳检测数据
            builder.RegisterType<CheckWireropeDetailDataRepository>().As<ICheckWireropeDetailDataRepository>().InstancePerLifetimeScope();
            builder.RegisterType<CheckWireropeDetailDataMapping>().As<ICheckWireropeDetailDataMapping>().InstancePerLifetimeScope();
            builder.RegisterType<CheckWireropeDetailDataService>().As<ICheckWireropeDetailDataService>().InstancePerLifetimeScope();
            builder.RegisterType<CheckWireropeDetailDataLogic>().As<ICheckWireropeDetailDataLogic>().InstancePerLifetimeScope();
            #endregion


            #region 在用绳检测位置
            builder.RegisterType<CheckWireropeDetailPositionRepository>().As<ICheckWireropeDetailPositionRepository>().InstancePerLifetimeScope();
            builder.RegisterType<CheckWireropeDetailPositionMapping>().As<ICheckWireropeDetailPositionMapping>().InstancePerLifetimeScope();
            builder.RegisterType<CheckWireropeDetailPositionService>().As<ICheckWireropeDetailPositionService>().InstancePerLifetimeScope();
            builder.RegisterType<CheckWireropeDetailPositionLogic>().As<ICheckWireropeDetailPositionLogic>().InstancePerLifetimeScope();
            #endregion


            #region 在用绳检测状态
            builder.RegisterType<CheckWireropeStatusMonitorRepository>().As<ICheckWireropeStatusMonitorRepository>().InstancePerLifetimeScope();
            builder.RegisterType<CheckWireropeStatusMonitorMapping>().As<ICheckWireropeStatusMonitorMapping>().InstancePerLifetimeScope();
            builder.RegisterType<CheckWireropeStatusMonitorService>().As<ICheckWireropeStatusMonitorService>().InstancePerLifetimeScope();
            builder.RegisterType<CheckWireropeStatusMonitorLogic>().As<ICheckWireropeStatusMonitorLogic>().InstancePerLifetimeScope();
            #endregion


            #region 在用绳档案
            builder.RegisterType<UsingWireropeRepository>().As<IUsingWireropeRepository>().InstancePerLifetimeScope();
            builder.RegisterType<UsingWireropeMapping>().As<IUsingWireropeMapping>().InstancePerLifetimeScope();
            builder.RegisterType<UsingWireropeService>().As<IUsingWireropeService>().InstancePerLifetimeScope();
            builder.RegisterType<UsingWireropeLogic>().As<IUsingWireropeLogic>().InstancePerLifetimeScope();
            #endregion


            #region 在用绳附件
            builder.RegisterType<UsingWireropeAttrRepository>().As<IUsingWireropeAttrRepository>().InstancePerLifetimeScope();
            builder.RegisterType<UsingWireropeAttrMapping>().As<IUsingWireropeAttrMapping>().InstancePerLifetimeScope();
            builder.RegisterType<UsingWireropeAttrService>().As<IUsingWireropeAttrService>().InstancePerLifetimeScope();
            builder.RegisterType<UsingWireropeAttrLogic>().As<IUsingWireropeAttrLogic>().InstancePerLifetimeScope();
            #endregion


            #region 在用绳维保
            builder.RegisterType<UsingWireropeKeepRepository>().As<IUsingWireropeKeepRepository>().InstancePerLifetimeScope();
            builder.RegisterType<UsingWireropeKeepMapping>().As<IUsingWireropeKeepMapping>().InstancePerLifetimeScope();
            builder.RegisterType<UsingWireropeKeepService>().As<IUsingWireropeKeepService>().InstancePerLifetimeScope();
            builder.RegisterType<UsingWireropeKeepLogic>().As<IUsingWireropeKeepLogic>().InstancePerLifetimeScope();
            #endregion


            #region 检测仪磁头
            builder.RegisterType<MagnetHeadRepository>().As<IMagnetHeadRepository>().InstancePerLifetimeScope();
            builder.RegisterType<MagnetHeadMapping>().As<IMagnetHeadMapping>().InstancePerLifetimeScope();
            builder.RegisterType<MagnetHeadService>().As<IMagnetHeadService>().InstancePerLifetimeScope();
            builder.RegisterType<MagnetHeadLogic>().As<IMagnetHeadLogic>().InstancePerLifetimeScope();
            #endregion

            #region 检测报告
            builder.RegisterType<MHCheckRepository>().As<IMHCheckRepository>().InstancePerLifetimeScope();
            builder.RegisterType<MHCheckMapping>().As<IMHCheckMapping>().InstancePerLifetimeScope();
            builder.RegisterType<MHCheckService>().As<IMHCheckService>().InstancePerLifetimeScope();
            builder.RegisterType<MHCheckLogic>().As<IMHCheckLogic>().InstancePerLifetimeScope();
            #endregion

            #endregion

        }
    }
}
